
#pragma once

namespace MathsHelper
{
		u_int RGBAtoABGR( const u_int uColour ); 
		u_int InterpolateColour( const u_int uCol1, const u_int uCol2, float fFraction);

		template<typename T> T Min( T t1, T t2 )
		{
			return ( t1 > t2 ) ? t2 : t1;
		}
		template<typename T> T Max( T t1, T t2 )
		{
			return ( t1 > t2 ) ? t1 : t2;
		}
		template<typename T> T Clamp( T tVal, T tMin, T tMax )
		{
			return Min( Max( tVal, tMin ), tMax );
		}
		template<typename T> T Normalise( T tVal, T tMin, T tMax )
		{
			return ( tVal - tMin ) / ( tMax - tMin );
		}
		template<typename T> T Lerp( T tVal, T tMin, T tMax )
		{
			return tMin + ( tMax - tMin ) * tVal;
		}
		template<typename T> T Remap( T tVal, T tOldMin, T tOldMax, T tNewMin, T tNewMax )
		{
			return Lerp( Normalise( tVal, tOldMin, tOldMax ), tNewMin, tNewMax );
		}
};

//eof
